home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Online / RFCs / rfc / rfc2236.txt < prev    next >
Text File  |  1997-12-07  |  51KB  |  1,348 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                            W. Fenner
  8. Request for Comments: 2236                                      Xerox PARC
  9. Updates: 1112                                                November 1997
  10. Category: Standards Track
  11.  
  12.  
  13.              Internet Group Management Protocol, Version 2
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.    This document specifies an Internet standards track protocol for the
  19.    Internet community, and requests discussion and suggestions for
  20.    improvements.  Please refer to the current edition of the "Internet
  21.    Official Protocol Standards" (STD 1) for the standardization state
  22.    and status of this protocol.  Distribution of this memo is unlimited.
  23.  
  24. Copyright Notice
  25.  
  26.    Copyright (C) The Internet Society (1997).  All Rights Reserved.
  27.  
  28. Abstract
  29.  
  30.    This memo documents IGMPv2, used by IP hosts to report their
  31.    multicast group memberships to routers.  It updates STD 5, RFC 1112.
  32.  
  33.    IGMPv2 allows group membership termination to be quickly reported to
  34.    the routing protocol, which is important for high-bandwidth multicast
  35.    groups and/or subnets with highly volatile group membership.
  36.  
  37.    This document is a product of the Inter-Domain Multicast Routing
  38.    working group within the Internet Engineering Task Force.  Comments
  39.    are solicited and should be addressed to the working group's mailing
  40.    list at idmr@cs.ucl.ac.uk and/or the author(s).
  41.  
  42. 1.  Definitions
  43.  
  44.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  45.    "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
  46.    document are to be interpreted as described in RFC 2119 [RFC 2119].
  47.  
  48. 2.  Introduction
  49.  
  50.    The Internet Group Management Protocol (IGMP) is used by IP hosts to
  51.    report their multicast group memberships to any immediately-
  52.    neighboring multicast routers.  This memo describes only the use of
  53.    IGMP between hosts and routers to determine group membership.
  54.    Routers that are members of multicast groups are expected to behave
  55.  
  56.  
  57.  
  58. Fenner                      Standards Track                     [Page 1]
  59.  
  60. RFC 2236           Internet Group Management Protocol      November 1997
  61.  
  62.  
  63.    as hosts as well as routers, and may even respond to their own
  64.    queries.  IGMP may also be used between routers, but such use is not
  65.    specified here.
  66.  
  67.    Like ICMP, IGMP is a integral part of IP.  It is required to be
  68.    implemented by all hosts wishing to receive IP multicasts.  IGMP
  69.    messages are encapsulated in IP datagrams, with an IP protocol number
  70.    of 2.  All IGMP messages described in this document are sent with IP
  71.    TTL 1, and contain the IP Router Alert option [RFC 2113] in their IP
  72.    header.  All IGMP messages of concern to hosts have the following
  73.    format:
  74.  
  75.     0                   1                   2                   3
  76.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  77.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  78.    |      Type     | Max Resp Time |           Checksum            |
  79.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  80.    |                         Group Address                         |
  81.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  82.  
  83. 2.1.  Type
  84.  
  85.    There are three types of IGMP messages of concern to the host-
  86.    router interaction:
  87.  
  88.    0x11 = Membership Query
  89.         There are two sub-types of Membership Query messages:
  90.         - General Query, used to learn which groups have members on an
  91.           attached network.
  92.         - Group-Specific Query, used to learn if a particular group
  93.           has any members on an attached network.
  94.  
  95.         These two messages are differentiated by the Group Address, as
  96.         described in section 1.4 .  Membership Query messages are
  97.         referred to simply as "Query" messages.
  98.  
  99.    0x16 = Version 2 Membership Report
  100.  
  101.    0x17 = Leave Group
  102.  
  103.    There is an additional type of message, for backwards-compatibility
  104.    with IGMPv1:
  105.  
  106.    0x12 = Version 1 Membership Report
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Fenner                      Standards Track                     [Page 2]
  115.  
  116. RFC 2236           Internet Group Management Protocol      November 1997
  117.  
  118.  
  119.    This document refers to Membership Reports simply as "Reports".  When
  120.    no version is specified, the statement applies equally to both
  121.    versions.
  122.  
  123.    Unrecognized message types should be silently ignored.  New message
  124.    types may be used by newer versions of IGMP, by multicast routing
  125.    protocols, or other uses.
  126.  
  127. 2.2.  Max Response Time
  128.  
  129.    The Max Response Time field is meaningful only in Membership Query
  130.    messages, and specifies the maximum allowed time before sending a
  131.    responding report in units of 1/10 second.  In all other messages, it
  132.    is set to zero by the sender and ignored by receivers.
  133.  
  134.    Varying this setting allows IGMPv2 routers to tune the "leave
  135.    latency" (the time between the moment the last host leaves a group
  136.    and when the routing protocol is notified that there are no more
  137.    members), as discussed in section 7.8.  It also allows tuning of the
  138.    burstiness of IGMP traffic on a subnet, as discussed in section 7.3.
  139.  
  140. 2.3.  Checksum
  141.  
  142.    The checksum is the 16-bit one's complement of the one's complement
  143.    sum of the whole IGMP message (the entire IP payload).  For computing
  144.    the checksum, the checksum field is set to zero.  When transmitting
  145.    packets, the checksum MUST be computed and inserted into this field.
  146.    When receiving packets, the checksum MUST be verified before
  147.    processing a packet.
  148.  
  149. 2.4.  Group Address
  150.  
  151.    In a Membership Query message, the group address field is set to zero
  152.    when sending a General Query, and set to the group address being
  153.    queried when sending a Group-Specific Query.
  154.  
  155.    In a Membership Report or Leave Group message, the group address
  156.    field holds the IP multicast group address of the group being
  157.    reported or left.
  158.  
  159. 2.5.  Other fields
  160.  
  161.    Note that IGMP messages may be longer than 8 octets, especially
  162.    future backwards-compatible versions of IGMP.  As long as the Type is
  163.    one that is recognized, an IGMPv2 implementation MUST ignore anything
  164.    past the first 8 octets while processing the packet.  However, the
  165.    IGMP checksum is always computed over the whole IP payload, not just
  166.    over the first 8 octets.
  167.  
  168.  
  169.  
  170. Fenner                      Standards Track                     [Page 3]
  171.  
  172. RFC 2236           Internet Group Management Protocol      November 1997
  173.  
  174.  
  175. 3.  Protocol Description
  176.  
  177.    Note that defaults for timer values are described later in this
  178.    document.  Timer and counter names appear in square brackets.
  179.  
  180.    The term "interface" is sometimes used in this document to mean "the
  181.    primary interface on an attached network"; if a router has multiple
  182.    physical interfaces on a single network this protocol need only run
  183.    on one of them.  Hosts, on the other hand, need to perform their
  184.    actions on all interfaces that have memberships associated with them.
  185.  
  186.    Multicast routers use IGMP to learn which groups have members on each
  187.    of their attached physical networks.  A multicast router keeps a list
  188.    of multicast group memberships for each attached network, and a timer
  189.    for each membership.  "Multicast group memberships" means the
  190.    presence of at least one member of a multicast group on a given
  191.    attached network, not a list of all of the members.  With respect to
  192.    each of its attached networks, a multicast router may assume one of
  193.    two roles: Querier or Non-Querier.  There is normally only one
  194.    Querier per physical network.  All multicast routers start up as a
  195.    Querier on each attached network.  If a multicast router hears a
  196.    Query message from a router with a lower IP address, it MUST become a
  197.    Non-Querier on that network.  If a router has not heard a Query
  198.    message from another router for [Other Querier Present Interval], it
  199.    resumes the role of Querier.  Routers periodically [Query Interval]
  200.    send a General Query on each attached network for which this router
  201.    is the Querier, to solicit membership information.  On startup, a
  202.    router SHOULD send [Startup Query Count] General Queries spaced
  203.    closely together [Startup Query Interval] in order to quickly and
  204.    reliably determine membership information.  A General Query is
  205.    addressed to the all-systems multicast group (224.0.0.1), has a Group
  206.    Address field of 0, and has a Max Response Time of [Query Response
  207.    Interval].
  208.  
  209.    When a host receives a General Query, it sets delay timers for each
  210.    group (excluding the all-systems group) of which it is a member on
  211.    the interface from which it received the query.  Each timer is set to
  212.    a different random value, using the highest clock granularity
  213.    available on the host, selected from the range (0, Max Response Time]
  214.    with Max Response Time as specified in the Query packet.  When a host
  215.    receives a Group-Specific Query, it sets a delay timer to a random
  216.    value selected from the range (0, Max Response Time] as above for the
  217.    group being queried if it is a member on the interface from which it
  218.    received the query.  If a timer for the group is already running, it
  219.    is reset to the random value only if the requested Max Response Time
  220.    is less than the remaining value of the running timer.  When a
  221.    group's timer expires, the host multicasts a Version 2 Membership
  222.    Report to the group, with IP TTL of 1.  If the host receives another
  223.  
  224.  
  225.  
  226. Fenner                      Standards Track                     [Page 4]
  227.  
  228. RFC 2236           Internet Group Management Protocol      November 1997
  229.  
  230.  
  231.    host's Report (version 1 or 2) while it has a timer running, it stops
  232.    its timer for the specified group and does not send a Report, in
  233.    order to suppress duplicate Reports.
  234.  
  235.    When a router receives a Report, it adds the group being reported to
  236.    the list of multicast group memberships on the network on which it
  237.    received the Report and sets the timer for the membership to the
  238.    [Group Membership Interval].  Repeated Reports refresh the timer.  If
  239.    no Reports are received for a particular group before this timer has
  240.    expired, the router assumes that the group has no local members and
  241.    that it need not forward remotely-originated multicasts for that
  242.    group onto the attached network.
  243.  
  244.    When a host joins a multicast group, it should immediately transmit
  245.    an unsolicited Version 2 Membership Report for that group, in case it
  246.    is the first member of that group on the network.  To cover the
  247.    possibility of the initial Membership Report being lost or damaged,
  248.    it is recommended that it be repeated once or twice after short
  249.    delays [Unsolicited Report Interval].  (A simple way to accomplish
  250.    this is to send the initial Version 2 Membership Report and then act
  251.    as if a Group-Specific Query was received for that group, and set a
  252.    timer appropriately).
  253.  
  254.    When a host leaves a multicast group, if it was the last host to
  255.    reply to a Query with a Membership Report for that group, it SHOULD
  256.    send a Leave Group message to the all-routers multicast group
  257.    (224.0.0.2). If it was not the last host to reply to a Query, it MAY
  258.    send nothing as there must be another member on the subnet.  This is
  259.    an optimization to reduce traffic; a host without sufficient storage
  260.    to remember whether or not it was the last host to reply MAY always
  261.    send a Leave Group message when it leaves a group.  Routers SHOULD
  262.    accept a Leave Group message addressed to the group being left, in
  263.    order to accommodate implementations of an earlier version of this
  264.    standard.  Leave Group messages are addressed to the all-routers
  265.    group because other group members have no need to know that a host
  266.    has left the group, but it does no harm to address the message to the
  267.    group.
  268.  
  269.    When a Querier receives a Leave Group message for a group that has
  270.    group members on the reception interface, it sends [Last Member Query
  271.    Count] Group-Specific Queries every [Last Member Query Interval] to
  272.    the group being left.  These Group-Specific Queries have their Max
  273.    Response time set to [Last Member Query Interval].  If no Reports are
  274.    received after the response time of the last query expires, the
  275.    routers assume that the group has no local members, as above.  Any
  276.    Querier to non-Querier transition is ignored during this time; the
  277.    same router keeps sending the Group-Specific Queries.
  278.  
  279.  
  280.  
  281.  
  282. Fenner                      Standards Track                     [Page 5]
  283.  
  284. RFC 2236           Internet Group Management Protocol      November 1997
  285.  
  286.  
  287.    Non-Queriers MUST ignore Leave Group messages, and Queriers SHOULD
  288.    ignore Leave Group messages for which there are no group members on
  289.    the reception interface.
  290.  
  291.    When a non-Querier receives a Group-Specific Query message, if its
  292.    existing group membership timer is greater than [Last Member Query
  293.    Count] times the Max Response Time specified in the message, it sets
  294.    its group membership timer to that value.
  295.  
  296. 4.  Compatibility with IGMPv1 Routers
  297.  
  298.    An IGMPv2 host may be placed on a subnet where the Querier router has
  299.    not yet been upgraded to IGMPv2.  The following requirements apply:
  300.  
  301.         The IGMPv1 router will send General Queries with the Max
  302.         Response Time set to 0.  This MUST be interpreted as a value of
  303.         100 (10 seconds).
  304.  
  305.         The IGMPv1 router expects Version 1 Membership Reports in
  306.         response to its Queries, and will not pay attention to Version 2
  307.         Membership Reports.  Therefore, a state variable MUST be kept
  308.         for each interface, describing whether the multicast Querier on
  309.         that interface is running IGMPv1 or IGMPv2.  This variable MUST
  310.         be based upon whether or not an IGMPv1 query was heard in the
  311.         last [Version 1 Router Present Timeout] seconds, and MUST NOT be
  312.         based upon the type of the last Query heard.  This state
  313.         variable MUST be used to decide what type of Membership Reports
  314.         to send for unsolicited Membership Reports as well as Membership
  315.         Reports in response to Queries.
  316.  
  317.         An IGMPv2 host MAY suppress Leave Group messages on a network
  318.         where the Querier is using IGMPv1.
  319.  
  320.    An IGMPv2 router may be placed on a subnet where at least one router
  321.    on the subnet has not yet been upgraded to IGMPv2.  The following
  322.    requirements apply:
  323.  
  324.         If any IGMPv1 routers are present, the querier MUST use IGMPv1.
  325.         The use of IGMPv1 must be administratively configured, as there
  326.         is no reliable way of dynamically determining whether IGMPv1
  327.         routers are present on a network.  Implementations MAY provide a
  328.         way for system administrators to enable the use of IGMPv1 on
  329.         their routers; in the absence of explicit configuration, the
  330.         configuration MUST default to IGMPv2.  When in IGMPv1 mode,
  331.         routers MUST send Periodic Queries with a Max Response Time of
  332.         0, and MUST ignore Leave Group messages.  They SHOULD also warn
  333.         about receiving an IGMPv2 query, although such warnings MUST be
  334.         rate-limited.
  335.  
  336.  
  337.  
  338. Fenner                      Standards Track                     [Page 6]
  339.  
  340. RFC 2236           Internet Group Management Protocol      November 1997
  341.  
  342.  
  343.         If a router is not explicitly configured to use IGMPv1 and hears
  344.         an IGMPv1 Query, it SHOULD log a warning.  These warnings MUST
  345.         be rate-limited.
  346.  
  347. 5.  Compatibility with IGMPv1 Hosts
  348.  
  349.    An IGMPv2 host may be placed on a subnet where there are hosts that
  350.    have not yet been upgraded to IGMPv2.  The following requirement
  351.    applies:
  352.  
  353.         The host MUST allow its Membership Report to be suppressed by
  354.         either a Version 1 Membership Report or a Version 2 Membership
  355.         Report.
  356.  
  357.    An IGMPv2 router may be placed on a subnet where there are hosts that
  358.    have not yet been upgraded to IGMPv2.  The following requirements
  359.    apply:
  360.  
  361.         If a router receives a Version 1 Membership Report, it MUST set
  362.         a timer to note that there are version 1 hosts present which are
  363.         members of the group for which it heard the report.  This timer
  364.         should be the same as the [Group Membership Interval].
  365.  
  366.         If there are version 1 hosts present for a particular group, a
  367.         router MUST ignore any Leave Group messages that it receives for
  368.         that group.
  369.  
  370. 6.  Host State Diagram
  371.  
  372.    Host behavior is more formally specified by the state transition
  373.    diagram below.  A host may be in one of three possible states with
  374.    respect to any single IP multicast group on any single network
  375.    interface:
  376.  
  377.    - "Non-Member" state, when the host does not belong to the group on
  378.      the interface.  This is the initial state for all memberships on
  379.      all network interfaces; it requires no storage in the host.
  380.  
  381.    - "Delaying Member" state, when the host belongs to the group on the
  382.      interface and has a report delay timer running for that membership.
  383.  
  384.    - "Idle Member" state, when the host belongs to the group on the
  385.      interface and does not have a report delay timer running for that
  386.      membership.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Fenner                      Standards Track                     [Page 7]
  395.  
  396. RFC 2236           Internet Group Management Protocol      November 1997
  397.  
  398.  
  399.    There are five significant events that can cause IGMP state
  400.    transitions:
  401.  
  402.    - "join group" occurs when the host decides to join the group on the
  403.      interface.  It may occur only in the Non-Member state.
  404.  
  405.    - "leave group" occurs when the host decides to leave the group on
  406.      the interface.  It may occur only in the Delaying Member and Idle
  407.      Member states.
  408.  
  409.    - "query received" occurs when the host receives either a valid
  410.      General Membership Query message, or a valid Group-Specific
  411.      Membership Query message.  To be valid, the Query message must be
  412.      at least 8 octets long, and have a correct IGMP checksum.  The
  413.      group address in the IGMP header must either be zero (a General
  414.      Query) or a valid multicast group address (a Group-Specific Query).
  415.      A General Query applies to all memberships on the interface from
  416.      which the Query is received.  A Group-Specific Query applies to
  417.      membership in a single group on the interface from which the Query
  418.      is received.  Queries are ignored for memberships in the Non-Member
  419.      state.
  420.  
  421.    - "report received" occurs when the host receives a valid IGMP
  422.      Membership Report message (Version 1 or Version 2).  To be valid,
  423.      the Report message must be at least 8 octets long and have a
  424.      correct IGMP checksum.  A Membership Report applies only to the
  425.      membership in the group identified by the Membership Report, on the
  426.      interface from which the Membership Report is received.  It is
  427.      ignored for memberships in the Non-Member or Idle Member state.
  428.  
  429.    - "timer expired" occurs when the report delay timer for the group on
  430.      the interface expires.  It may occur only in the Delaying Member
  431.      state.
  432.  
  433.    All other events, such as receiving invalid IGMP messages, or IGMP
  434.    messages other than Query or Report, are ignored in all states.
  435.  
  436.    There are seven possible actions that may be taken in response to the
  437.    above events:
  438.  
  439.    - "send report" for the group on the interface.  The type of report
  440.      is determined by the state of the interface.  The Report Message is
  441.      sent to the group being reported.
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Fenner                      Standards Track                     [Page 8]
  451.  
  452. RFC 2236           Internet Group Management Protocol      November 1997
  453.  
  454.  
  455.    - "send leave" for the group on the interface.  If the interface
  456.      state says the Querier is running IGMPv1, this action SHOULD be
  457.      skipped.  If the flag saying we were the last host to report is
  458.      cleared, this action MAY be skipped.  The Leave Message is sent to
  459.      the ALL-ROUTERS group (224.0.0.2).
  460.  
  461.    - "set flag" that we were the last host to send a report for this
  462.      group.
  463.  
  464.    - "clear flag" since we were not the last host to send a report for
  465.      this group.
  466.  
  467.    - "start timer" for the group on the interface, using a delay value
  468.      chosen uniformly from the interval (0, Max Response Time], where
  469.      Max Response time is specified in the Query.  If this is an
  470.      unsolicited Report, the timer is set to a delay value chosen
  471.      uniformly from the interval (0, [Unsolicited Report Interval] ].
  472.  
  473.    - "reset timer" for the group on the interface to a new value, using
  474.      a delay value chosen uniformly from the interval (0, Max Response
  475.      Time], as described in "start timer".
  476.  
  477.    - "stop timer" for the group on the interface.
  478.  
  479.    In all of the following state diagrams, each state transition arc is
  480.    labeled with the event that causes the transition, and, in
  481.    parentheses, any actions taken during the transition.  Note that the
  482.    transition is always triggered by the event; even if the action is
  483.    conditional, the transition still occurs.
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Fenner                      Standards Track                     [Page 9]
  507.  
  508. RFC 2236           Internet Group Management Protocol      November 1997
  509.  
  510.  
  511.                               ________________
  512.                              |                |
  513.                              |                |
  514.                              |                |
  515.                              |                |
  516.                    --------->|   Non-Member   |<---------
  517.                   |          |                |          |
  518.                   |          |                |          |
  519.                   |          |                |          |
  520.                   |          |________________|          |
  521.                   |                   |                  |
  522.                   | leave group       | join group       | leave group
  523.                   | (stop timer,      |(send report,     | (send leave
  524.                   |  send leave if    | set flag,        |  if flag set)
  525.                   |  flag set)        | start timer)     |
  526.           ________|________           |          ________|________
  527.          |                 |<---------          |                 |
  528.          |                 |                    |                 |
  529.          |                 |<-------------------|                 |
  530.          |                 |   query received   |                 |
  531.          | Delaying Member |    (start timer)   |   Idle Member   |
  532.     ---->|                 |------------------->|                 |
  533.    |     |                 |   report received  |                 |
  534.    |     |                 |    (stop timer,    |                 |
  535.    |     |                 |     clear flag)    |                 |
  536.    |     |_________________|------------------->|_________________|
  537.    | query received    |        timer expired
  538.    | (reset timer if   |        (send report,
  539.    |  Max Resp Time    |         set flag)
  540.    |  < current timer) |
  541.     -------------------
  542.  
  543.  
  544.    The all-systems group (address 224.0.0.1) is handled as a special
  545.    case.  The host starts in Idle Member state for that group on every
  546.    interface, never transitions to another state, and never sends a
  547.    report for that group.
  548.  
  549.    In addition, a host may be in one of two possible states with respect
  550.    to any single network interface:
  551.  
  552.    - "No IGMPv1 Router Present", when the host has not heard an IGMPv1
  553.      style query for the [Version 1 Router Present Timeout].  This is
  554.      the initial state.
  555.  
  556.    - "IGMPv1 Router Present", when the host has heard an IGMPv1 style
  557.      query within the [Version 1 Router Present Timeout].
  558.  
  559.  
  560.  
  561.  
  562. Fenner                      Standards Track                    [Page 10]
  563.  
  564. RFC 2236           Internet Group Management Protocol      November 1997
  565.  
  566.  
  567.    There are two events that can cause state transitions:
  568.  
  569.    - "IGMPv1 query received", when the host receives a query with the
  570.      Max Response Time field set to 0.
  571.  
  572.    - "timer expires", when the timer set to note the presence of an
  573.      IGMPv1 router expires.
  574.  
  575.    And a single action that can be triggered by an event:
  576.  
  577.    - "set timer", setting the timer to its maximum value [Version 1
  578.      Router Present Timeout] and (re)starting it.
  579.  
  580.                               ________________
  581.                              |                |
  582.                              |                |
  583.                              |   No IGMPv1    |
  584.                              |     Router     |
  585.                              |    Present     |
  586.                              |                |
  587.                         ---->|                |----
  588.                        |     |                |    |
  589.                        |     |________________|    |
  590.          timer expires |                           | IGMPv1 query
  591.                        |      ________________     | received
  592.                        |     |                |    | (set timer)
  593.                        |     |                |    |
  594.                        |     |                |    |
  595.                         -----|     IGMPv1     |<---
  596.                              |     Router     |
  597.                              |    Present     |
  598.                              |                |
  599.                         ---->|                |----
  600.                        |     |________________|    |
  601.                        |                           |
  602.                        | IGMPv1 query received     |
  603.                        | (set timer)               |
  604.                         ---------------------------
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Fenner                      Standards Track                    [Page 11]
  619.  
  620. RFC 2236           Internet Group Management Protocol      November 1997
  621.  
  622.  
  623. 7.  Router State Diagram
  624.  
  625.    Router behavior is more formally specified by the state transition
  626.    diagrams below.
  627.  
  628.    A router may be in one of two possible states with respect to any
  629.    single attached network:
  630.  
  631.    - "Querier", when this router is designated to transmit IGMP
  632.      Membership Queries on this network.
  633.  
  634.    - "Non-Querier", when there is another router designated to transmit
  635.      IGMP membership Queries on this network.
  636.  
  637.    The following three events can cause the router to change states:
  638.  
  639.    - "query timer expired" occurs when the timer set for query
  640.      transmission expires.
  641.  
  642.    - "query received from a router with a lower IP address" occurs when
  643.      an IGMP Membership Query is received from a router on the same
  644.      network with a lower IP address.
  645.  
  646.    - "other querier present timer expired" occurs when the timer set to
  647.      note the presence of another querier with a lower IP address on the
  648.      network expires.
  649.  
  650.    There are three actions that may be taken in response to the above
  651.    events:
  652.  
  653.    - "start general query timer" for the attached network.
  654.  
  655.    - "start other querier present timer" for the attached network [Other
  656.      Querier Present Interval].
  657.  
  658.    - "send general query" on the attached network.  The General Query is
  659.      sent to the all-systems group (224.0.0.1), and has a Max Response
  660.      Time of [Query Response Interval].
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Fenner                      Standards Track                    [Page 12]
  675.  
  676. RFC 2236           Internet Group Management Protocol      November 1997
  677.  
  678.  
  679.                                       --------------------------------
  680.                               _______|________  gen. query timer      |
  681.   ---------                  |                |        expired        |
  682.  | Initial |---------------->|                | (send general query,  |
  683.   ---------  (send gen. q.,  |                |  set gen. q. timer)   |
  684.         set initial gen. q.  |                |<----------------------
  685.               timer)         |    Querier     |
  686.                              |                |
  687.                         -----|                |<---
  688.                        |     |                |    |
  689.                        |     |________________|    |
  690.  query received from a |                           | other querier
  691.  router with a lower   |                           | present timer
  692.  IP address            |                           | expired
  693.  (set other querier    |      ________________     | (send general
  694.   present timer)       |     |                |    |  query,set gen.
  695.                        |     |                |    |  q. timer)
  696.                        |     |                |    |
  697.                         ---->|      Non       |----
  698.                              |    Querier     |
  699.                              |                |
  700.                              |                |
  701.                         ---->|                |----
  702.                        |     |________________|    |
  703.                        | query received from a     |
  704.                        | router with a lower IP    |
  705.                        | address                   |
  706.                        | (set other querier        |
  707.                        |  present timer)           |
  708.                         ---------------------------
  709.  
  710.    A router should start in the Initial state on all attached networks,
  711.    and immediately move to Querier state.
  712.  
  713.    In addition, to keep track of which groups have members, a router may
  714.    be in one of four possible states with respect to any single IP
  715.    multicast group on any single attached network:
  716.  
  717.    - "No Members Present" state, when there are no hosts on the network
  718.      which have sent reports for this multicast group.  This is the
  719.      initial state for all groups on the router; it requires no storage
  720.      in the router.
  721.  
  722.    - "Members Present" state, when there is a host on the network which
  723.      has sent a Membership Report for this multicast group.
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Fenner                      Standards Track                    [Page 13]
  731.  
  732. RFC 2236           Internet Group Management Protocol      November 1997
  733.  
  734.  
  735.    - "Version 1 Members Present" state, when there is an IGMPv1 host on
  736.      the network which has sent a Version 1 Membership Report for this
  737.      multicast group.
  738.  
  739.    - "Checking Membership" state, when the router has received a
  740.      Leave Group message but has not yet heard a Membership Report for
  741.      the multicast group.
  742.  
  743.    There are six significant events that can cause router state
  744.    transitions:
  745.  
  746.    - "v2 report received" occurs when the router receives a Version 2
  747.      Membership Report for the group on the interface.  To be valid, the
  748.      Report message must be at least 8 octets long and must have a
  749.      correct IGMP checksum.
  750.  
  751.    - "v1 report received" occurs when the router receives a Version 1
  752.      Membership report for the group on the interface.  The same
  753.      validity requirements apply.
  754.  
  755.    - "leave received" occurs when the router receives an IGMP Group
  756.      Leave message for the group on the interface.  To be valid, the
  757.      Leave message must be at least 8 octets long and must have a
  758.      correct IGMP checksum.
  759.  
  760.    - "timer expired" occurs when the timer set for a group membership
  761.      expires.
  762.  
  763.    - "retransmit timer expired" occurs when the timer set to retransmit
  764.      a group-specific Membership Query expires.
  765.  
  766.    - "v1 host timer expired" occurs when the timer set to note the
  767.      presence of version 1 hosts as group members expires.
  768.  
  769.    There are six possible actions that may be taken in response to the
  770.    above events:
  771.  
  772.    - "start timer" for the group membership on the interface - also
  773.      resets the timer to its initial value [Group Membership Interval]
  774.      if the timer is currently running.
  775.  
  776.    - "start timer*" for the group membership on the interface - this
  777.      alternate action sets the timer to [Last Member Query Interval] *
  778.      [Last Member Query Count] if this router is a Querier, or the [Max
  779.      Response Time] in the packet * [Last Member Query Count] if this
  780.      router is a non-Querier.
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Fenner                      Standards Track                    [Page 14]
  787.  
  788. RFC 2236           Internet Group Management Protocol      November 1997
  789.  
  790.  
  791.    - "start retransmit timer" for the group membership on the interface
  792.      [Last Member Query Interval].
  793.  
  794.    - "start v1 host timer" for the group membership on the interface,
  795.      also resets the timer to its initial value [Group Membership
  796.      Interval] if the timer is currently running.
  797.  
  798.    - "send group-specific query" for the group on the attached network.
  799.      The Group-Specific Query is sent to the group being queried, and
  800.      has a Max Response Time of [Last Member Query Interval].
  801.  
  802.    - "notify routing +" notify the routing protocol that there are
  803.      members of this group on this connected network.
  804.  
  805.    - "notify routing -" notify the routing protocol that there are no
  806.      longer any members of this group on this connected network.
  807.  
  808.      The state diagram for a router in Querier state follows:
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Fenner                      Standards Track                    [Page 15]
  843.  
  844. RFC 2236           Internet Group Management Protocol      November 1997
  845.  
  846.  
  847.                               ________________
  848.  ----------------------------|                |<-----------------------
  849. |                            |                |timer expired           |
  850. |               timer expired|                |(notify routing -,      |
  851. |          (notify routing -)|   No Members   |clear rxmt tmr)         |
  852. |                    ------->|    Present     |<-------                |
  853. |                   |        |                |       |                |
  854. |v1 report rec'd    |        |                |       |  ------------  |
  855. |(notify routing +, |        |________________|       | | rexmt timer| |
  856. | start timer,      |                    |            | |  expired   | |
  857. | start v1 host     |  v2 report received|            | | (send g-s  | |
  858. |  timer)           |  (notify routing +,|            | |  query,    | |
  859. |                   |        start timer)|            | |  st rxmt   | |
  860. |         __________|______              |       _____|_|______  tmr)| |
  861. |        |                 |<------------       |              |     | |
  862. |        |                 |                    |              |<----- |
  863. |        |                 | v2 report received |              |       |
  864. |        |                 | (start timer)      |              |       |
  865. |        | Members Present |<-------------------|    Checking  |       |
  866. |  ----->|                 | leave received     |   Membership |       |
  867. | |      |                 | (start timer*,     |              |       |
  868. | |      |                 |  start rexmt timer,|              |       |
  869. | |      |                 |  send g-s query)   |              |       |
  870. | |  --->|                 |------------------->|              |       |
  871. | | |    |_________________|                    |______________|       |
  872. | | |v2 report rec'd |  |                          |                   |
  873. | | |(start timer)   |  |v1 report rec'd           |v1 report rec'd    |
  874. | |  ----------------   |(start timer,             |(start timer,      |
  875. | |v1 host              | start v1 host timer)     | start v1 host     |
  876. | |tmr    ______________V__                        | timer)            |
  877. | |exp'd |                 |<----------------------                    |
  878. |  ------|                 |                                           |
  879. |        |    Version 1    |timer expired                              |
  880. |        | Members Present |(notify routing -)                         |
  881.  ------->|                 |-------------------------------------------
  882.          |                 |<--------------------
  883.  ------->|_________________| v1 report rec'd     |
  884. | v2 report rec'd |   |   (start timer,          |
  885. | (start timer)   |   |    start v1 host timer)  |
  886.  -----------------     --------------------------
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Fenner                      Standards Track                    [Page 16]
  899.  
  900. RFC 2236           Internet Group Management Protocol      November 1997
  901.  
  902.  
  903.    The state diagram for a router in  Non-Querier  state  is  similar,
  904.    but non-Queriers do not send any messages and are only driven by
  905.    message reception.Note that non-Queriers do not care whether a
  906.    Membership Report message is Version 1 or Version 2.
  907.  
  908.                               ________________
  909.                              |                |
  910.                              |                |
  911.                 timer expired|                |timer expired
  912.            (notify routing -)|   No Members   |(notify routing -)
  913.                    --------->|    Present     |<---------
  914.                   |          |                |          |
  915.                   |          |                |          |
  916.                   |          |                |          |
  917.                   |          |________________|          |
  918.                   |                   |                  |
  919.                   |                   |report received   |
  920.                   |                   |(notify routing +,|
  921.                   |                   | start timer)     |
  922.           ________|________           |          ________|________
  923.          |                 |<---------          |                 |
  924.          |                 |  report received   |                 |
  925.          |                 |  (start timer)     |                 |
  926.          | Members Present |<-------------------|     Checking    |
  927.          |                 | g-s query rec'd    |    Membership   |
  928.          |                 | (start timer*)     |                 |
  929.     ---->|                 |------------------->|                 |
  930.    |     |_________________|                    |_________________|
  931.    | report received |
  932.    | (start timer)   |
  933.     -----------------
  934.  
  935. 8.  List of timers and default values
  936.  
  937.    Most of these timers are  configurable.   If  non-default  settings
  938.    are used,  they MUST be consistent among all routers on a single
  939.    link.  Note that parentheses are used to  group  expressions  to
  940.    make  the  algebra clear.
  941.  
  942. 8.1.  Robustness Variable
  943.  
  944.    The Robustness Variable allows tuning for the expected packet loss on
  945.    a subnet.  If a subnet is expected to be lossy, the Robustness
  946.    Variable may be increased.  IGMP is robust to (Robustness Variable-1)
  947.    packet losses.  The Robustness Variable MUST NOT be zero, and SHOULD
  948.    NOT be one.  Default: 2
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Fenner                      Standards Track                    [Page 17]
  955.  
  956. RFC 2236           Internet Group Management Protocol      November 1997
  957.  
  958.  
  959. 8.2.  Query Interval
  960.  
  961.    The Query Interval is the interval between General Queries sent  by
  962.    the Querier.  Default: 125 seconds.
  963.  
  964.    By varying the [Query Interval], an administrator may tune the number
  965.    of IGMP messages on the subnet; larger values cause IGMP Queries to
  966.    be sent less often.
  967.  
  968. 8.3.  Query Response Interval
  969.  
  970.    The Max Response Time inserted into the periodic General Queries.
  971.    Default: 100 (10 seconds)
  972.  
  973.    By varying the [Query Response Interval], an administrator may tune
  974.    the burstiness of IGMP messages on the subnet; larger values make the
  975.    traffic less bursty, as host responses are spread out over a larger
  976.    interval.  The number of seconds represented by the [Query Response
  977.    Interval] must be less than the [Query Interval].
  978.  
  979. 8.4.  Group Membership Interval
  980.  
  981.    The Group Membership Interval is the amount of time that must pass
  982.    before a multicast router decides there are no more members of a
  983.    group on a network.  This value MUST be ((the Robustness Variable)
  984.    times (the Query Interval)) plus (one Query Response Interval).
  985.  
  986. 8.5.  Other Querier Present Interval
  987.  
  988.    The Other Querier Present Interval is the length of time that must
  989.    pass before a multicast router decides that there is no longer
  990.    another multicast router which should be the querier.  This value
  991.    MUST be ((the Robustness Variable) times (the Query Interval)) plus
  992.    (one half of one Query Response Interval).
  993.  
  994. 8.6.  Startup Query Interval
  995.  
  996.    The Startup Query Interval is the interval between General Queries
  997.    sent by a Querier on startup.  Default: 1/4 the Query Interval.
  998.  
  999. 8.7.  Startup Query Count
  1000.  
  1001.    The Startup Query Count is the number of Queries sent out on startup,
  1002.    separated by the Startup Query Interval.  Default: the Robustness
  1003.    Variable.
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Fenner                      Standards Track                    [Page 18]
  1011.  
  1012. RFC 2236           Internet Group Management Protocol      November 1997
  1013.  
  1014.  
  1015. 8.8.  Last Member Query Interval
  1016.  
  1017.    The Last Member Query Interval is the Max Response Time inserted into
  1018.    Group-Specific Queries sent in response to Leave Group messages, and
  1019.    is also the amount of time between Group-Specific Query messages.
  1020.    Default: 10 (1 second)
  1021.  
  1022.    This value may be tuned to modify the "leave latency" of the network.
  1023.    A reduced value results in reduced time to detect the loss of the
  1024.    last member of a group.
  1025.  
  1026. 8.9.  Last Member Query Count
  1027.  
  1028.    The Last Member Query Count is the number of Group-Specific Queries
  1029.    sent before the router assumes there are no local members.  Default:
  1030.    the Robustness Variable.
  1031.  
  1032. 8.10.  Unsolicited Report Interval
  1033.  
  1034.    The Unsolicited Report Interval is the time between repetitions of a
  1035.    host's initial report of membership in a group.  Default: 10 seconds.
  1036.  
  1037. 8.11.  Version 1 Router Present Timeout
  1038.  
  1039.    The Version 1 Router Present Timeout is how long a host must wait
  1040.    after hearing a Version 1 Query before it may send any IGMPv2
  1041.    messages.  Value: 400 seconds.
  1042.  
  1043. 9.  Message destinations
  1044.  
  1045.    This information is provided elsewhere in the document, but is
  1046.    summarized here for convenience.
  1047.  
  1048.    Message Type                  Destination Group
  1049.    ------------                  -----------------
  1050.    General Query                 ALL-SYSTEMS (224.0.0.1)
  1051.    Group-Specific Query          The group being queried
  1052.    Membership Report             The group being reported
  1053.    Leave Message                 ALL-ROUTERS (224.0.0.2)
  1054.  
  1055.  
  1056.      Note: in older (i.e., non-standard and now obsolete) versions of
  1057.      IGMPv2, hosts send Leave Messages to the group being left.  A
  1058.      router SHOULD accept Leave Messages addressed to the group being
  1059.      left in the interests of backwards compatibility with such hosts.
  1060.      In all cases, however, hosts MUST send to the ALL-ROUTERS address
  1061.      to be compliant with this specification.
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Fenner                      Standards Track                    [Page 19]
  1067.  
  1068. RFC 2236           Internet Group Management Protocol      November 1997
  1069.  
  1070.  
  1071. 10.  Security Considerations
  1072.  
  1073.    We consider the ramifications of a forged message of each type.
  1074.  
  1075.    Query Message:
  1076.  
  1077.      A forged Query message from a machine with a lower IP address than
  1078.      the current Querier will cause Querier duties to be assigned to the
  1079.      forger.  If the forger then sends no more Query messages, other
  1080.      routers' Other Querier Present timer will time out and one will
  1081.      resume the role of Querier.  During this time, if the forger
  1082.      ignores Leave Messages, traffic might flow to groups with no
  1083.      members for up to [Group Membership Interval].
  1084.  
  1085.      A forged Query message sent to a group with members will cause the
  1086.      hosts which are members of the group to report their memberships.
  1087.      This causes a small amount of extra traffic on the LAN, but causes
  1088.      no protocol problems.
  1089.  
  1090.    Report messages:
  1091.  
  1092.      A forged Report message may cause multicast routers to think there
  1093.      are members of a group on a subnet when there are not.  Forged
  1094.      Report messages from the local subnet are meaningless, since
  1095.      joining a group on a host is generally an unprivileged operation,
  1096.      so a local user may trivially gain the same result without forging
  1097.      any messages.  Forged Report messages from external sources are
  1098.      more troublesome; there are two defenses against externally forged
  1099.      Reports:
  1100.  
  1101.      - Ignore the Report if you cannot identify the source
  1102.        address of the packet as belonging to a subnet assigned to the
  1103.        interface on which the packet was received.  This solution means
  1104.        that Reports sent by mobile hosts without addresses on the local
  1105.        subnet will be ignored.
  1106.  
  1107.      - Ignore Report messages without Router Alert options [RFC 2113],
  1108.        and require that routers not forward Report messages.  (The
  1109.        requirement is not a requirement of generalized filtering in the
  1110.        forwarding path, since the packets already have Router Alert
  1111.        options in them).  This solution breaks backwards compatibility
  1112.        with implementations of earlier versions of this specification
  1113.        which did not require Router Alert.
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Fenner                      Standards Track                    [Page 20]
  1123.  
  1124. RFC 2236           Internet Group Management Protocol      November 1997
  1125.  
  1126.  
  1127.      A forged Version 1 Report Message may put a router into "version 1
  1128.      members present" state for a particular group, meaning that the
  1129.      router will ignore Leave messages.  This can cause traffic to flow
  1130.      to groups with no members for up to [Group Membership Interval].
  1131.      There are two defenses against forged v1 Reports:
  1132.  
  1133.      - To defend against externally sourced v1 Reports, ignore the
  1134.        Report if you cannot identify the source address of the packet as
  1135.        belonging to a subnet assigned to the interface on which the
  1136.        packet was received.  This solution means that v1 Reports sent by
  1137.        mobile hosts without addresses on the local subnet will be
  1138.        ignored.
  1139.  
  1140.      - Provide routers with a configuration switch to ignore Version 1
  1141.        messages completely.  This breaks automatic compatibility with
  1142.        Version 1 hosts, so should only be used in situations where "fast
  1143.        leave" is critical.  This solution protects against forged
  1144.        version 1 reports from the local subnet as well.
  1145.  
  1146.    Leave message:
  1147.  
  1148.      A forged Leave message will cause the Querier to send out Group-
  1149.      Specific Queries for the group in question.  This causes extra
  1150.      processing on each router and on each member of the group, but can
  1151.      not cause loss of desired traffic.  There are two defenses against
  1152.      externally forged Leave messages:
  1153.  
  1154.      - Ignore the Leave message if you cannot identify the source
  1155.        address of the packet as belonging to a subnet assigned to the
  1156.        interface on which the packet was received.  This solution means
  1157.        that Leave messages sent by mobile hosts without addresses on the
  1158.        local subnet will be ignored.
  1159.  
  1160.      - Ignore Leave messages without Router Alert options [RFC 2113],
  1161.        and require that routers not forward Leave messages.  (The
  1162.        requirement is not a requirement of generalized filtering in the
  1163.        forwarding path, since the packets already have Router Alert
  1164.        options in them).  This solution breaks backwards compatibility
  1165.        with implementations of earlier versions of this specification
  1166.        which did not require Router Alert.
  1167.  
  1168. 11.  Acknowledgments
  1169.  
  1170.    IGMPv2 was designed by Rosen Sharma and Steve Deering.
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Fenner                      Standards Track                    [Page 21]
  1179.  
  1180. RFC 2236           Internet Group Management Protocol      November 1997
  1181.  
  1182.  
  1183. 12.  References
  1184.  
  1185.    RFC 2119       Bradner, S., "Key words for use in RFCs to Indicate
  1186.                   Requirement Levels", BCP 14, RFC 2119, March 1997.
  1187.  
  1188.    RFC 2113       Katz, D., "IP Router Alert Option," RFC 2113,
  1189.                   February 1997.
  1190.  
  1191.    RFC 1112       Deering, S., "Host Extensions for IP Multicasting",
  1192.                   STD 5, RFC 1112, August 1989.
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Fenner                      Standards Track                    [Page 22]
  1235.  
  1236. RFC 2236           Internet Group Management Protocol      November 1997
  1237.  
  1238.  
  1239. 13.  Appendix I - Changes from IGMPv1
  1240.  
  1241.    The IGMPv1 "Version" and "Type" fields are combined into a single
  1242.    "Type" field.
  1243.  
  1244.    A new IGMP Type is assigned to Version 2 Membership Report messages,
  1245.    so a router may tell the difference between an IGMPv1 and IGMPv2 host
  1246.    report.
  1247.  
  1248.    A new IGMP Type is created for the IGMPv2 Leave Group message.
  1249.  
  1250.    The Membership Query message is changed so that a previously unused
  1251.    field contains a new value, the Max Response Time.
  1252.  
  1253.    The IGMPv2 spec now specifies a querier election mechanism.  In
  1254.    IGMPv1, the querier election was left up to the multicast routing
  1255.    protocol, and different protocols used different mechanisms.  This
  1256.    could result in more than one querier per network, so the election
  1257.    mechanism has been standardized in IGMPv2.  However, this means that
  1258.    care must be taken when an IGMPv2 router is trying to coexist with an
  1259.    IGMPv1 router that uses a different querier election mechanism.  In
  1260.    particular, it means that an IGMPv2 router must be able to act as an
  1261.    IGMPv1 router on a particular network if configured to do so.  The
  1262.    actions required include:
  1263.  
  1264.    - Set the Max Response Time field to 0 in all queries.
  1265.  
  1266.    - Ignore Leave Group messages.
  1267.  
  1268.    The IGMPv2 spec relaxes the requirements on validity-checking for
  1269.    Membership Queries and Membership Reports.  When upgrading an
  1270.    implementation, be sure to remove any checks that do not belong.
  1271.  
  1272.    The IGMPv2 spec requires the presence of the IP Router Alert option
  1273.    [RFC 2113] in all packets described in this memo.
  1274.  
  1275. 14.  Author's Address
  1276.  
  1277.    William C. Fenner
  1278.    Xerox PARC
  1279.    3333 Coyote Hill Road
  1280.    Palo Alto, CA 94304
  1281.    Phone: +1 650 812 4816
  1282.  
  1283.    EMail: fenner@parc.xerox.com
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Fenner                      Standards Track                    [Page 23]
  1291.  
  1292. RFC 2236           Internet Group Management Protocol      November 1997
  1293.  
  1294.  
  1295. 15.  Full Copyright Statement
  1296.  
  1297.    Copyright (C) The Internet Society (1997).  All Rights Reserved.
  1298.  
  1299.    This document and translations of it may be copied and furnished to
  1300.    others, and derivative works that comment on or otherwise explain it
  1301.    or assist in its implementation may be prepared, copied, published
  1302.    and distributed, in whole or in part, without restriction of any
  1303.    kind, provided that the above copyright notice and this paragraph are
  1304.    included on all such copies and derivative works.  However, this
  1305.    document itself may not be modified in any way, such as by removing
  1306.    the copyright notice or references to the Internet Society or other
  1307.    Internet organizations, except as needed for the purpose of
  1308.    developing Internet standards in which case the procedures for
  1309.    copyrights defined in the Internet Standards process must be
  1310.    followed, or as required to translate it into languages other than
  1311.    English.
  1312.  
  1313.    The limited permissions granted above are perpetual and will not be
  1314.    revoked by the Internet Society or its successors or assigns.
  1315.  
  1316.    This document and the information contained herein is provided on an
  1317.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1318.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1319.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1320.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1321.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Fenner                      Standards Track                    [Page 24]
  1347.  
  1348.